Integrated development environments (IDEs) are typically used to create various computer applications, graphics, documents, and the like. Many IDEs and design applications use a palette or panel model where small rectangular windows contain controls for a specific set of functionality tools. In almost all of the IDEs that use a palette or panel model, the designer can typically drag the palettes out of their docked location and rearrange them to float on the screen wherever the designer wants. This ability to “float” the palettes wherever the designer desires is useful, but sometimes it is more desirable to organize the palettes in a systematic fashion and/or attach them to the edge of the workspace.
There are generally two different models used in IDEs that implement an edge docking mechanism for its palettes. The first model creates a stacked column on whichever edge the designer wishes to dock the palettes. IDEs, such as Adobe Systems Inc.'s FIREWORKS®, DREAMWEAVER®, and FLASH® each allow designers to dock tool palettes in such a stacked column on the edges of the workspace. In such stacked column implementations one of the typical properties is that no matter how much vertical height the palettes in the column take up, the column itself takes up the full height of the workspace. Therefore, in extreme cases, such as when there is only one, short palette docked on the edge, the rest of the column space below the palette is unused but still obscures the workspace. Such wasted space is typically undesirable to designers, who generally prefer as big a workspace as possible.
The second model generally used for palette management in IDEs provides for stashing the palettes on the edges in collapsible windows. For example, Adobe Systems, Inc.'s INDESIGN® IDE stashes palettes on the edges of the design workspace. Designers drag the palettes to the workspace edge which allows the palette to slide away into the side of the workspace screen. When the designer desires to access the functionality in any of the stashed palettes, the user selects a visible title bar or panel tab protruding from the edge of the workspace which triggers the selected palette or panel to slide out to be accessible to the designer on the workspace. When the palette slides out, it obscures the subject matter in the design workspace, but does not extend the obscuration beyond the physical dimensions of the selected palette, as is common in the stacked palette mechanism. While the stashed palette model allows the user to view more of the design space while keeping the various tool palettes and tool panels accessible, the IDE does not manage the palette layout. Without managing the layout, the various palettes and panels that are docked and slid into the edges can overlap other stashed palettes and panels. Therefore, it is possible to obscure existing stashed palettes with additional stashed palettes. This mechanism, then, generally forces the user to keep moving the palettes around to maintain free access to the functionality and tools in the other palettes. Requiring the user to constantly monitor and manage the workspace layout creates multiple, undesirable usability issues which may often make the user interface difficult to manipulate.